package com.ruoyi.boss.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 司机端APP版本管理（含新增字段）对象 driver_app_versions
 * 
 * @author nz
 * @date 2025-08-19
 */
public class DriverAppVersions extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号（自增主键） */
    private Long id;

    /** 司机端APP名称（如：凌动逸行司机端） */
    @Excel(name = "司机端APP名称", readConverterExp = "如=：凌动逸行司机端")
    private String appName;

    /** 司机端APP版本号（如：1.1） */
    @Excel(name = "司机端APP版本号", readConverterExp = "如=：1.1")
    private String appVersion;

    /** versioncode */
    @Excel(name = "versioncode")
    private String versioncode;

    /** 应用系统（如：安卓、iOS） */
    @Excel(name = "应用系统", readConverterExp = "如=：安卓、iOS")
    private String appSystem;

    /** 是否强制更新（如：已更新、待更新） */
    @Excel(name = "是否强制更新", readConverterExp = "如=：已更新、待更新")
    private String isForceUpdate;

    /** 更新文案 */
    @Excel(name = "更新文案")
    private String updateDesc;

    /** 上传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上传时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date uploadTime;

    /** 操作人（如：于海超） */
    @Excel(name = "操作人", readConverterExp = "如=：于海超")
    private String operator;

    /** 更新系统（如：全部、安卓、iOS） */
    @Excel(name = "更新系统", readConverterExp = "如=：全部、安卓、iOS")
    private String updateSystem;

    /** 开始更新时间（日历插件选择） */
    @Excel(name = "开始更新时间", readConverterExp = "日=历插件选择")
    private Date startUpdateTime;

    /** 安装包路径（上传后存储路径） */
    @Excel(name = "安装包路径", readConverterExp = "上=传后存储路径")
    private String installPackage;

    /** 是否强制更新（1=启用，0=禁用） */
    @Excel(name = "是否强制更新", readConverterExp = "1==启用，0=禁用")
    private Integer forceUpdateStatus;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setAppName(String appName) 
    {
        this.appName = appName;
    }

    public String getAppName() 
    {
        return appName;
    }

    public void setAppVersion(String appVersion) 
    {
        this.appVersion = appVersion;
    }

    public String getAppVersion() 
    {
        return appVersion;
    }

    public void setVersioncode(String versioncode) 
    {
        this.versioncode = versioncode;
    }

    public String getVersioncode() 
    {
        return versioncode;
    }

    public void setAppSystem(String appSystem) 
    {
        this.appSystem = appSystem;
    }

    public String getAppSystem() 
    {
        return appSystem;
    }

    public void setIsForceUpdate(String isForceUpdate) 
    {
        this.isForceUpdate = isForceUpdate;
    }

    public String getIsForceUpdate() 
    {
        return isForceUpdate;
    }

    public void setUpdateDesc(String updateDesc) 
    {
        this.updateDesc = updateDesc;
    }

    public String getUpdateDesc() 
    {
        return updateDesc;
    }

    public void setUploadTime(Date uploadTime) 
    {
        this.uploadTime = uploadTime;
    }

    public Date getUploadTime() 
    {
        return uploadTime;
    }

    public void setOperator(String operator) 
    {
        this.operator = operator;
    }

    public String getOperator() 
    {
        return operator;
    }

    public void setUpdateSystem(String updateSystem) 
    {
        this.updateSystem = updateSystem;
    }

    public String getUpdateSystem() 
    {
        return updateSystem;
    }

    public void setStartUpdateTime(Date startUpdateTime) 
    {
        this.startUpdateTime = startUpdateTime;
    }

    public Date getStartUpdateTime() 
    {
        return startUpdateTime;
    }

    public void setInstallPackage(String installPackage) 
    {
        this.installPackage = installPackage;
    }

    public String getInstallPackage() 
    {
        return installPackage;
    }

    public void setForceUpdateStatus(Integer forceUpdateStatus) 
    {
        this.forceUpdateStatus = forceUpdateStatus;
    }

    public Integer getForceUpdateStatus() 
    {
        return forceUpdateStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("appName", getAppName())
            .append("appVersion", getAppVersion())
            .append("versioncode", getVersioncode())
            .append("appSystem", getAppSystem())
            .append("isForceUpdate", getIsForceUpdate())
            .append("updateDesc", getUpdateDesc())
            .append("uploadTime", getUploadTime())
            .append("updateTime", getUpdateTime())
            .append("operator", getOperator())
            .append("updateSystem", getUpdateSystem())
            .append("startUpdateTime", getStartUpdateTime())
            .append("installPackage", getInstallPackage())
            .append("forceUpdateStatus", getForceUpdateStatus())
            .toString();
    }
}
